package com.web.cms.pan.facade;

import com.blue.core.dict.State;
import com.web.cms.pan.message.FolderRequest;
import com.web.cms.pan.message.FolderResponse;

import java.util.List;
import java.util.Map;

/**
 * 目录接口
 * 
 * @author 代码由 blue-code 框架生成
 * @since 1.0 2018年04月09日
 */
public interface FolderFacade
{

	/**
	 * 添加目录
	 */
	FolderResponse add(FolderRequest request);

	/**
	 * 更新目录
	 */
	FolderResponse update(FolderRequest request);

	/**
	 * 更新目录状态
	 */
	void state(FolderRequest request);
	
	/**
	 * 查询单个目录
	 */
	FolderResponse get(Integer id);
	
	/**
	 * 查询目录列表
	 */
	List<FolderResponse> list(Integer userId, Integer parentId, State state);

	/**
	 * 查询目录路径，从根目录开始
	 */
	List<FolderResponse> listPath(Integer userId, Integer id);

	/**
	 * 查询目录数
	 */
	Map<String, List<FolderResponse>> listTree(Integer userId);

	/**
	 * 移动/复制目录，包含子目录</br>
	 * 1. type == 1，移动
	 * 2. type == 2，复制
	 */
	void operate(Integer userId, int srcId, int destId, int type);

	/**
	 * 删除目录
	 */
	void delete(Integer userId, String ids);
	
}
